
//引入js文件
//@author ethan
import {CryptoJS} from './tripledes.js'
import {CryptoJS_mode_ECB} from './mode-ecb.js'

const secretKey  = CryptoJS.enc.Utf8.parse("987654321098765432109876"); // key
const iv = CryptoJS.enc.Utf8.parse("01234567");


// DES 解密

 function decryptByDES(ciphertext, key) {
	var keyHex = CryptoJS.enc.Utf8.parse(key);
	// direct decrypt ciphertext
	var decrypted = CryptoJS.DES.decrypt({
		ciphertext: CryptoJS.enc.Hex.parse(ciphertext)
	}, keyHex, {
		mode: CryptoJS.mode.ECB,
		padding: CryptoJS.pad.Pkcs7
	});
	return decrypted.toString(CryptoJS.enc.Utf8);
}

// function decryptByDES(ciphertext, key){
// 	let keyHex = CryptoJS.enc.Utf8.parse(key);
// 	let ivHex = CryptoJS.enc.Utf8.parse(key);
// 	// direct decrypt ciphertext
// 	try{
// 		let decrypted = CryptoJS.DES.decrypt({
// 			ciphertext: CryptoJS.enc.Base64.parse(ciphertext)
// 		}, keyHex, {
// 			iv: ivHex,
// 			mode: CryptoJS.mode.CBC,
// 			padding: CryptoJS.pad.Pkcs7
// 		});
// 	}catch(e) {
// 		console.log(e);
// 	}
	
// 	return decrypted.toString(CryptoJS.enc.Utf8);
// }
// function decryptByDES(ciphertext, key){
//     let keyHex = CryptoJS.enc.Utf8.parse(key);
//     let decrypted = CryptoJS.DES.decrypt({
//         ciphertext: CryptoJS.enc.Hex.parse(ciphertext)
//     }, keyHex, {
//         mode: CryptoJS.mode.CBC,
//         padding: CryptoJS.pad.Pkcs7
//     });
//     let result_value = decrypted.toString(CryptoJS.enc.Utf8);
//     return result_value;
// }

// DES3 解密 
function decrypt(encrypted) {
	 const decrypted = CryptoJS.TripleDES.decrypt(encrypted, secretKey, { 
		iv: iv,
		mode: CryptoJS.mode.CBC,
		padding: CryptoJS.pad.Pkcs7 
	}).toString(CryptoJS.enc.Utf8);

	return decrypted // 返回解密后的字符串
}
 
module.exports = {
  decryptByDES:decryptByDES,
  decrypt:decrypt,
}